<template>
  <div>
    <!-- 导入员工：
       1：定义api
       2:导入api
       3:拿到excel数据后调用api传递api相应的值
       4：调用成功
           提示
           跳转到员工页面

-->

    <!-- on-success:上传成功后的数据返回：包含excel的标题与列表数据
         beforeUpload:需要return一个boolean值  true:正常允许上传  false:不允许上传 上传的关卡（限制上传文件类型或者大小）
    -->
    <UploadExcel :on-success="onSuccess" :before-upload="beforeUpload" />
  </div>
</template>
<script>
import UploadExcel from '@/components/lib/uploadExcel.vue'
import { sysUserBatch } from '@/api/employees'
import dayjs from 'dayjs'
export default {
  components: {
    UploadExcel
  },
  methods: {
    async  onSuccess(res) {
      console.log(res)
      /*
    username	string	非必须		姓名
    mobile	string	非必须		手机号
    formOfEmployment	number	非必须		聘用形式
    workNumber	string	非必须		工号
    departmentName	string	非必须		组织名称
    timeOfEntry	string	非必须		入职时间
    correctionTime	string	非必须		转正时间
    [{
      username:'高大山1'  <==  姓名:'高大山1'
    }]
      */
      const newArr = res.results.map(item => {
        return {
          username: item['姓名'], //	string	非必须		姓名
          mobile: item['手机号'], //	string	非必须		手机号
          workNumber: item['工号'], //	string	非必须		工号
          timeOfEntry: this.changeExcelTime(item['入职日期']), //	string	非必须		入职时间
          correctionTime: this.changeExcelTime(item['转正日期']) //	string	非必须		转正时间
        }
      })
      console.log(newArr)
      await sysUserBatch(newArr)
      this.$message.success('导入员工成功')
      this.$router.push('/employees')
      // this.$router.go(-1)
    },
    changeExcelTime(excelTime) {
      // excel时间是1900到现在的天数,它是以1作为开始值，时区差8小时
      // js:1970年到现在的毫秒数
      // 将excel转换成js
      const t = new Date((excelTime - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000)
      t.setYear(t.getFullYear() - 70)
      return dayjs(t).format('YYYY-MM-DD') // 1999/01/01
    },
    beforeUpload(res) {
      console.log('上传前', res)
      // 限制在2mb以内
      const limit1kb = res.size / 1024 / 1024 < 2
      if (!limit1kb) {
        this.$message.error('请上传2mb以内文件')
      }
      // 限制只能上传excel
      const limitType = /\.(xlsx|xls|csv)$/.test(res.name)
      if (!limitType) {
        this.$message.error('请上传xlsx|xls|csv格式的文件')
      }
      return limit1kb && limitType
    }
  }
}
</script>
<style>
</style>
<!-- 1：大概能写出来  2：能看明白里面数据是怎么回事（不是所有，大部要看得出来）
     最好找二个
-->
